package com.dfe.backend.common.sax.spd.substation.region;

import com.dfe.backend.common.sax.spd.substation.region.device.Device;
import com.dfe.backend.common.sax.spd.substation.region.function.FunctionArea;
import lombok.Data;

import java.util.List;

/**
 * 【描述】：表示用于连接屏柜间的线缆，包含0个或多个Core元素
 *
 * @author LiChang
 * @since 2025-7-29 10:18
 */
@Data
public class Cubicle {
    /**
     * 屏柜的编号。对于CPD文件，屏柜编号固定为TEMPLATE；对于SPD文件，屏柜编号宜采用设计编码，应在Substation元素下唯一
     */
    private String name;
    /**
     * 屏柜描述
     */
    private String desc;
    /**
     * 屏柜的类型。枚举值为RS、HK、MK、BD、CC、VT，注意这里应为class，但冲突，所以定为className
     */
    private String className;
    /**
     * 屏柜型号
     */
    private String type;
    /**
     * 屏柜结构。枚举值为FT、RV、FK、BK
     */
    private String style;
    /**
     * 屏柜制造厂商名称
     */
    private String manufacturer;
    /**
     * 屏柜宽度，单位为mm。当屏柜不是虚拟屏柜时，属性不为空
     */
    private String width;
    /**
     * 屏柜高度，单位为mm。当屏柜不是虚拟屏柜时，属性不为空
     */
    private String height;
    /**
     * 屏柜深度，单位为mm。当屏柜不是虚拟屏柜时，属性不为空
     */
    private String depth;
    /**
     * 屏柜颜色
     */
    private String color;
    /**
     * 面对屏柜时，屏柜前门门轴方向。枚举值为：LD、RD、DD
     */
    private String shaftDirection;
    /**
     * 屏柜编码，宜遵循NB/T 11198的规定
     */
    private String gridId;
    /**
     * 电网资产统一身份编码
     */
    private String objectId;

    private List<FunctionArea> functionAreaList;

    private List<Device> deviceList;

    private List<Core> coreList;
}
